home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / MUI / DEFTII15.LHA / Deft II / Sources / GUI.em < prev    next >
Encoding:
Text File  |  1994-11-06  |  9.8 KB  |  261 lines

  1. OPT MODULE
  2.  
  3.  
  4. ->*****
  5. ->** External modules
  6. ->*****
  7. MODULE 'libraries/mui'
  8. MODULE 'tools/boopsi' , 'tools/installhook'
  9. MODULE 'utility/tagitem' , 'utility/hooks'
  10.  
  11. MODULE '*Defs'
  12. MODULE '*GUI_MUIB'
  13. MODULE '*Work'
  14. MODULE '*PrefsFile'
  15. MODULE '*Paths'
  16. MODULE '*DefaultTools'
  17.  
  18.  
  19. ->*****
  20. ->** Global variables
  21. ->*****
  22. EXPORT DEF deftII                    :    PTR TO obj_app
  23. EXPORT DEF current_edited_path        :    LONG
  24. EXPORT DEF current_edited_def_tool    :    LONG
  25.  
  26.  
  27. /***************************/
  28. /* Initializes all the gui */
  29. /***************************/
  30. EXPORT PROC init_gui()
  31.  
  32.     DEF delete_path_hook            :    PTR TO hook
  33.     DEF edit_path_hook                :    PTR TO hook
  34.     DEF gui_add_path_hook            :    PTR TO hook
  35.     DEF app_add_path_hook            :    PTR TO hook
  36.     DEF delete_default_tool_hook    :    PTR TO hook
  37.     DEF edit_default_tool_hook        :    PTR TO hook
  38.     DEF gui_add_default_tool_hook    :    PTR TO hook
  39.     DEF app_add_default_tool_hook    :    PTR TO hook
  40.     DEF add_new_def_tool_hook        :    PTR TO hook
  41.     DEF app_add_new_def_tool_hook    :    PTR TO hook
  42.     DEF save_prefs_hook                :    PTR TO hook
  43.     DEF go_hook                        :    PTR TO hook
  44.  
  45.     NEW delete_path_hook            ,
  46.         edit_path_hook                ,
  47.         gui_add_path_hook            ,
  48.         app_add_path_hook            ,
  49.         delete_default_tool_hook    ,
  50.         edit_default_tool_hook        ,
  51.         gui_add_default_tool_hook    ,
  52.         app_add_default_tool_hook    ,
  53.         add_new_def_tool_hook        ,
  54.         app_add_new_def_tool_hook    ,
  55.         save_prefs_hook                ,
  56.         go_hook
  57.  
  58.     installhook(    delete_path_hook            ,    {gui_delete_path}        )
  59.     installhook(    edit_path_hook                ,    {edit_path}                )
  60.     installhook(    gui_add_path_hook            ,    {gui_add_path}            )
  61.     installhook(    app_add_path_hook            ,    {app_add_path}            )
  62.     installhook(    delete_default_tool_hook    ,    {delete_default_tool}    )
  63.     installhook(    edit_default_tool_hook        ,    {edit_default_tool}        )
  64.     installhook(    gui_add_default_tool_hook    ,    {gui_add_default_tool}    )
  65.     installhook(    app_add_default_tool_hook    ,    {app_add_default_tool}    )
  66.     installhook(    add_new_def_tool_hook        ,    {add_new_def_tool}        )
  67.     installhook(    app_add_new_def_tool_hook    ,    {app_add_new_def_tool}    )
  68.     installhook(    save_prefs_hook                ,    {gui_save_prefs}        )
  69.     installhook(    go_hook                        ,    {gui_go}                )
  70.  
  71.         /**********************************************************************/
  72.     domethod(    deftII.wi_main , [ MUIM_Notify , MUIA_Window_CloseRequest , MUI_TRUE ,
  73.                 deftII.app , 2 , MUIM_Application_ReturnID , MUIV_Application_ReturnID_Quit ] )
  74.  
  75.     domethod(    deftII.bt_quit , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  76.                 deftII.app , 2 , MUIM_Application_ReturnID , MUIV_Application_ReturnID_Quit ] )
  77.  
  78.     domethod(    deftII.bt_about , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  79.                 deftII.app , 2 , MUIM_Application_ReturnID , ID_BT_ABOUT ] )
  80.  
  81.     domethod(    deftII.bt_save_prefs , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  82.                 deftII.bt_save_prefs , 2 , MUIM_CallHook , save_prefs_hook ] )
  83.  
  84.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  85.                 deftII.gr_paths , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  86.  
  87.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  88.                 deftII.gr_default_tools , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  89.  
  90.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  91.                 deftII.bt_go , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  92.  
  93.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  94.                 deftII.bt_save_prefs , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  95.  
  96.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  97.                 deftII.bt_about , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  98.  
  99.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  100.                 deftII.bt_quit , 3 , MUIM_Set , MUIA_Disabled , MUI_TRUE ] )
  101.  
  102.     domethod(    deftII.bt_go , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  103.                 deftII.bt_go , 2 , MUIM_CallHook , go_hook ] )
  104.  
  105.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  106.                 deftII.gr_paths , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  107.  
  108.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  109.                 deftII.gr_default_tools , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  110.  
  111.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  112.                 deftII.bt_go , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  113.  
  114.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  115.                 deftII.bt_save_prefs , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  116.  
  117.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  118.                 deftII.bt_about , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  119.  
  120.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  121.                 deftII.bt_quit , 3 , MUIM_Set , MUIA_Disabled , FALSE ] )
  122.  
  123.     domethod(    deftII.bt_stop , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  124.                 deftII.app , 2 , MUIM_Application_ReturnID , ID_BT_STOP ] )
  125.         /**********************************************************************/
  126.     domethod(    deftII.bt_delete_path , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  127.                 deftII.bt_delete_path , 2 , MUIM_CallHook , delete_path_hook ] )
  128.  
  129.     domethod(    deftII.lv_paths , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  130.                 deftII.lv_paths , 2 , MUIM_CallHook , edit_path_hook ] )
  131.  
  132.     domethod(    deftII.stR_PA_path , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  133.                 deftII.stR_PA_path , 2 , MUIM_CallHook , gui_add_path_hook ] ) 
  134.  
  135.     domethod(    deftII.gr_paths , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  136.                 deftII.gr_paths , 3 , MUIM_CallHook , app_add_path_hook , MUIV_TriggerValue ] )
  137.         /**********************************************************************/
  138.     domethod(    deftII.bt_delete_def_tool , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  139.                 deftII.bt_delete_def_tool , 2 , MUIM_CallHook , delete_default_tool_hook ] )
  140.  
  141.     domethod(    deftII.lv_default_tools , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  142.                 deftII.lv_default_tools , 2 , MUIM_CallHook , edit_default_tool_hook ] )
  143.  
  144.     domethod(    deftII.stR_PO_new_def_tool , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  145.                 deftII.stR_PO_new_def_tool , 2 , MUIM_CallHook , gui_add_default_tool_hook ] ) 
  146.  
  147.     domethod(    deftII.im_new_def_tool , [ MUIM_Notify , MUIA_Pressed , FALSE ,
  148.                 deftII.im_new_def_tool , 2 , MUIM_CallHook , add_new_def_tool_hook ] )
  149.  
  150.     domethod(    deftII.lv_default_tools , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  151.                 deftII.lv_default_tools , 3 , MUIM_CallHook , app_add_default_tool_hook , MUIV_TriggerValue ] )
  152.  
  153.     domethod(    deftII.stR_old_def_tool , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  154.                 deftII.stR_old_def_tool , 3 , MUIM_CallHook , app_add_default_tool_hook , MUIV_TriggerValue ] )
  155.  
  156.     domethod(    deftII.stR_PO_new_def_tool , [ MUIM_Notify , MUIA_AppMessage , MUIV_EveryTime ,
  157.                 deftII.stR_PO_new_def_tool , 3 , MUIM_CallHook , app_add_new_def_tool_hook , MUIV_TriggerValue ] )
  158.  
  159.     domethod(    deftII.stR_old_def_tool , [ MUIM_Notify , MUIA_String_Acknowledge , MUIV_EveryTime ,
  160.                 deftII.wi_main , 3 , MUIM_Set , MUIA_Window_ActiveObject , deftII.stR_PO_new_def_tool ] )
  161.  
  162.     domethod(    deftII.lv_new_def_tools , [ MUIM_Notify , MUIA_Listview_DoubleClick , MUI_TRUE ,
  163.                 deftII.po_new_def_tool , 2 , MUIM_Popstring_Close , TRUE ] )
  164.         /**********************************************************************/
  165.  
  166.     domethod(    deftII.wi_main , [ MUIM_Window_SetCycleChain ,
  167.                                     deftII.lv_default_tools , deftII.bt_delete_def_tool ,
  168.                                     deftII.stR_old_def_tool , deftII.stR_PO_new_def_tool ,
  169.                                     deftII.lv_paths , deftII.stR_PA_path , deftII.bt_delete_path ,
  170.                                     deftII.bt_go , deftII.bt_stop , deftII.bt_save_prefs ,
  171.                                     deftII.bt_about , deftII.bt_quit , NIL ] )
  172.  
  173.     set( deftII.wi_main    , MUIA_Window_ID , IDEX_WI_MAIN )
  174.     set( deftII.wi_main , MUIA_Window_Open , MUI_TRUE )
  175.  
  176. ENDPROC
  177.  
  178.  
  179. /***********************************************/
  180. /* Adds a new (or edited) path to the listview */
  181. /***********************************************/
  182. PROC gui_add_path()
  183.  
  184.     DEF path_str : PTR TO CHAR
  185.  
  186.     IF current_edited_path = NO_CURRENT_EDITED_PATH
  187.  
  188.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.stR_PA_path )
  189.  
  190.     ELSE
  191.  
  192.         set( deftII.lv_paths , MUIA_List_Quiet , MUI_TRUE )
  193.         domethod( deftII.lv_paths , [ MUIM_List_Remove , current_edited_path ] )
  194.         set( deftII.lv_paths , MUIA_List_Quiet , FALSE )
  195.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_paths )
  196.  
  197.     ENDIF
  198.  
  199.     get( deftII.stR_PA_path , MUIA_String_Contents , {path_str} )
  200.     add_path( path_str )
  201.  
  202. ENDPROC
  203.  
  204.  
  205. /*******************************************/
  206. /* Deletes the active path in the listview */
  207. /*******************************************/
  208. PROC gui_delete_path()
  209.  
  210.     set( deftII.lv_paths , MUIA_List_Quiet , MUI_TRUE )
  211.  
  212.     domethod( deftII.lv_paths , [ MUIM_List_Remove , MUIV_List_Remove_Active ] )
  213.     current_edited_path := NO_CURRENT_EDITED_PATH
  214.     set( deftII.stR_PA_path , MUIA_String_Contents , '' )
  215.  
  216.     set( deftII.lv_paths , MUIA_List_Quiet , FALSE )
  217.  
  218.     set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_paths )
  219.  
  220. ENDPROC
  221.  
  222.  
  223. /*******************************************************/
  224. /* Adds a new (or edited) default tool to the listview */
  225. /*******************************************************/
  226. PROC gui_add_default_tool()
  227.  
  228.     DEF old_def_tool : PTR TO CHAR
  229.     DEF new_def_tool : PTR TO CHAR
  230.  
  231.     IF current_edited_def_tool = NO_CURRENT_EDITED_DEF_TOOL
  232.  
  233.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.stR_old_def_tool )
  234.  
  235.     ELSE
  236.  
  237.         set( deftII.lv_default_tools , MUIA_List_Quiet , MUI_TRUE )
  238.         domethod( deftII.lv_default_tools , [ MUIM_List_Remove , current_edited_def_tool ] )
  239.         set( deftII.lv_default_tools , MUIA_List_Quiet , FALSE )
  240.         set( deftII.wi_main , MUIA_Window_ActiveObject , deftII.lv_default_tools )
  241.  
  242.     ENDIF
  243.  
  244.     get( deftII.stR_old_def_tool , MUIA_String_Contents , {old_def_tool} )
  245.     get( deftII.stR_PO_new_def_tool , MUIA_String_Contents , {new_def_tool} )
  246.     add_default_tool( old_def_tool , new_def_tool )
  247.  
  248. ENDPROC
  249.  
  250.  
  251. /*******************************************/
  252. /* Saves the preferences file from the gui */
  253. /*******************************************/
  254. PROC gui_save_prefs() IS save_prefs( TRUE )
  255.  
  256.  
  257. /***************************************************************************/
  258. /* The function which runs the icon default tool replacements from the gui */
  259. /***************************************************************************/
  260. PROC gui_go() IS go( TRUE )
  261.